package com.hyw.encryption.annotation;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(RUNTIME)
@Target(METHOD)
public @interface Encrypted {
  /**
   * 业务上用来指定对应的加密算法, 一般对于输出口进行输出加密.默认为RSA 目前可选的有
   * <li>RSA
   * <li>AES
   * 
   * @return
   */
  String value() default "RSA";

  /**
   * 用于业务上的Key,具体由业务决定.
   * <p>
   * 目前基于当前业务 , 默认从请求头的uid中获得入参
   * <p>
   * 关于该Key的获取,由于系统拦截的位置是controller方法, 即HTTP请求的上下文, 所以会从上下文中, 根据key来获取对应的Value值.
   * <p>
   * 目前主要是从请求头中获取
   * 
   * @return
   */
  String key() default "uid";

}
